/********************************************
 * 功能说明: 
 * 模块名称: 
 * 系统名称: 
 * 软件版权: 
 * 系统版本: 1.0.0
 * 开发人员: zhangfb
 * 开发时间: 2019/3/31 9:59
 * 审核人员: 
 * 相关文档: 
 * 修改记录: 修改日期 修改人员 修改说明
 *********************************************/
package com.hyacinth.task.handler;

import com.hyacinth.task.callback.WorkCallback;

/**
 * 作业处理接口
 * @author zhangfb
 * @version 1.0.0.1
 * @since JDK 1.8
 */
public interface WorkHandler<T> {

    /**
     * 作业启动
     * @param workParams   作业参数
     * @param workCallback 作业回调
     * @return 作业id
     * @throws Exception 执行异常
     */
    String startWorker(T workParams, WorkCallback<T> workCallback)throws Exception;


    /**
     * 作业暂停
     * @param workId 作业id
     * @return 返回执行结果
     * @throws Exception 执行异常
     */
    int pauseWorker(String workId)throws Exception;

    /**
     * 作业重启
     * @param workId 作业id
     * @return 返回执行结果
     * @throws Exception 执行异常
     */
    int resumeWorker(String workId)throws Exception;

    /**
     * 作业停止
     * @param workId 作业id
     * @return 返回执行结果
     * @throws Exception 执行异常
     */
    int stopWorker(String workId)throws Exception;
}
